🎖️GitЯра🎖️
Node / meshtastic / Meshtastic-Android / files / core / model / src / commonTest / kotlin / org / meshtastic / core / model / DataPacketTest.kt
Displaying Raw • Download
core/model/src/commonTest/kotlin/org/meshtastic/core/model/DataPacketTest.kt bd2863243bab6eb213401d949839a2bc74dde7e2 (bd286324) Text, 23.11 KB
T8b949e/*
* Copyright (c) 2026 Meshtastic LLC
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
Tff7b72package T7ee787org.meshtastic.core.model
Tff7b72import T7ee787okio.ByteString.Companion.encodeUtf8
Tff7b72import T7ee787org.meshtastic.core.resources.Res
Tff7b72import T7ee787org.meshtastic.core.resources.error
Tff7b72import T7ee787org.meshtastic.core.resources.message_delivery_status
Tff7b72import T7ee787org.meshtastic.core.resources.message_routing_error_admin_bad_session_key
Tff7b72import T7ee787org.meshtastic.core.resources.message_routing_error_admin_bad_session_key_detail
Tff7b72import T7ee787org.meshtastic.core.resources.message_routing_error_admin_public_key_unauthorized
Tff7b72import T7ee787org.meshtastic.core.resources.message_routing_error_admin_public_key_unauthorized_detail
Tff7b72import T7ee787org.meshtastic.core.resources.message_routing_error_bad_request
Tff7b72import T7ee787org.meshtastic.core.resources.message_routing_error_bad_request_detail
Tff7b72import T7ee787org.meshtastic.core.resources.message_routing_error_duty_cycle_limit
Tff7b72import T7ee787org.meshtastic.core.resources.message_routing_error_duty_cycle_limit_detail
Tff7b72import T7ee787org.meshtastic.core.resources.message_routing_error_got_nak_detail
Tff7b72import T7ee787org.meshtastic.core.resources.message_routing_error_max_retransmit
Tff7b72import T7ee787org.meshtastic.core.resources.message_routing_error_max_retransmit_detail
Tff7b72import T7ee787org.meshtastic.core.resources.message_routing_error_no_channel
Tff7b72import T7ee787org.meshtastic.core.resources.message_routing_error_no_channel_detail
Tff7b72import T7ee787org.meshtastic.core.resources.message_routing_error_no_interface
Tff7b72import T7ee787org.meshtastic.core.resources.message_routing_error_no_interface_detail
Tff7b72import T7ee787org.meshtastic.core.resources.message_routing_error_no_response
Tff7b72import T7ee787org.meshtastic.core.resources.message_routing_error_no_response_detail
Tff7b72import T7ee787org.meshtastic.core.resources.message_routing_error_no_route_detail
Tff7b72import T7ee787org.meshtastic.core.resources.message_routing_error_not_authorized
Tff7b72import T7ee787org.meshtastic.core.resources.message_routing_error_not_authorized_detail
Tff7b72import T7ee787org.meshtastic.core.resources.message_routing_error_pki_failed
Tff7b72import T7ee787org.meshtastic.core.resources.message_routing_error_pki_failed_detail
Tff7b72import T7ee787org.meshtastic.core.resources.message_routing_error_pki_send_fail_public_key
Tff7b72import T7ee787org.meshtastic.core.resources.message_routing_error_pki_send_fail_public_key_detail
Tff7b72import T7ee787org.meshtastic.core.resources.message_routing_error_pki_unknown_pubkey
Tff7b72import T7ee787org.meshtastic.core.resources.message_routing_error_pki_unknown_pubkey_detail
Tff7b72import T7ee787org.meshtastic.core.resources.message_routing_error_rate_limit_exceeded
Tff7b72import T7ee787org.meshtastic.core.resources.message_routing_error_rate_limit_exceeded_detail
Tff7b72import T7ee787org.meshtastic.core.resources.message_routing_error_timeout_detail
Tff7b72import T7ee787org.meshtastic.core.resources.message_routing_error_too_large
Tff7b72import T7ee787org.meshtastic.core.resources.message_routing_error_too_large_detail
Tff7b72import T7ee787org.meshtastic.core.resources.message_status_delivered
Tff7b72import T7ee787org.meshtastic.core.resources.message_status_enroute
Tff7b72import T7ee787org.meshtastic.core.resources.message_status_recipient_delivered
Tff7b72import T7ee787org.meshtastic.core.resources.message_status_relayed_not_confirmed
Tff7b72import T7ee787org.meshtastic.core.resources.message_status_unknown
Tff7b72import T7ee787org.meshtastic.core.resources.routing_error_admin_bad_session_key
Tff7b72import T7ee787org.meshtastic.core.resources.routing_error_admin_public_key_unauthorized
Tff7b72import T7ee787org.meshtastic.core.resources.routing_error_bad_request
Tff7b72import T7ee787org.meshtastic.core.resources.routing_error_duty_cycle_limit
Tff7b72import T7ee787org.meshtastic.core.resources.routing_error_max_retransmit
Tff7b72import T7ee787org.meshtastic.core.resources.routing_error_no_channel
Tff7b72import T7ee787org.meshtastic.core.resources.routing_error_no_interface
Tff7b72import T7ee787org.meshtastic.core.resources.routing_error_no_response
Tff7b72import T7ee787org.meshtastic.core.resources.routing_error_no_route
Tff7b72import T7ee787org.meshtastic.core.resources.routing_error_none
Tff7b72import T7ee787org.meshtastic.core.resources.routing_error_not_authorized
Tff7b72import T7ee787org.meshtastic.core.resources.routing_error_pki_failed
Tff7b72import T7ee787org.meshtastic.core.resources.routing_error_pki_send_fail_public_key
Tff7b72import T7ee787org.meshtastic.core.resources.routing_error_pki_unknown_pubkey
Tff7b72import T7ee787org.meshtastic.core.resources.routing_error_rate_limit_exceeded
Tff7b72import T7ee787org.meshtastic.core.resources.routing_error_too_large
Tff7b72import T7ee787org.meshtastic.core.resources.unrecognized
Tff7b72import T7ee787org.meshtastic.proto.PortNum
Tff7b72import T7ee787org.meshtastic.proto.Routing
Tff7b72import T7ee787kotlin.test.Test
Tff7b72import T7ee787kotlin.test.assertEquals
Tff7b72import T7ee787kotlin.test.assertFalse
Tff7b72import T7ee787kotlin.test.assertNotEquals
Tff7b72import T7ee787kotlin.test.assertNull
Tff7b72import T7ee787kotlin.test.assertTrue
Tff7b72class T56d364DataPacketTest Tb4b4b4{
Tf0883e@Test
Tff7b72fun Td2a8ffnodeNumToDefaultId_formatsHexWithPrefixTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3assertEqualsTb4b4b4(Ta5d6ff"Ta5d6ff!1234abcdTa5d6ff"Tb4b4b4, Te6edf3NodeAddressTb4b4b4.Te6edf3numToDefaultIdTb4b4b4(T79c0ff0Te6edf3x1234ABCDTb4b4b4)Tb4b4b4)
Te6edf3assertEqualsTb4b4b4(Ta5d6ff"Ta5d6ff!ffffffffTa5d6ff"Tb4b4b4, Te6edf3NodeAddressTb4b4b4.Te6edf3numToDefaultIdTb4b4b4(Te6edf3NodeAddressTb4b4b4.Te6edf3NODENUM_BROADCASTTb4b4b4)Tb4b4b4)
Tb4b4b4}
Tf0883e@Test
Tff7b72fun Td2a8fftextConstructor_setsTextPayloadPropertiesTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3packet Tff7b72= Te6edf3DataPacketTb4b4b4(Te6edf3to Tff7b72= Ta5d6ff"Ta5d6ff!abcdef12Ta5d6ff"Tb4b4b4, Te6edf3channel Tff7b72= T79c0ff2Tb4b4b4, Te6edf3text Tff7b72= Ta5d6ff"Ta5d6ffhello meshTa5d6ff"Tb4b4b4, Te6edf3replyId Tff7b72= T79c0ff9T79c0ff9Tb4b4b4)
Te6edf3assertEqualsTb4b4b4(Ta5d6ff"Ta5d6ffhello meshTa5d6ff"Tb4b4b4, Te6edf3packetTb4b4b4.Te6edf3textTb4b4b4)
Te6edf3assertNullTb4b4b4(Te6edf3packetTb4b4b4.Te6edf3alertTb4b4b4)
Te6edf3assertEqualsTb4b4b4(Te6edf3PortNumTb4b4b4.Te6edf3TEXT_MESSAGE_APPTb4b4b4.Te6edf3valueTb4b4b4, Te6edf3packetTb4b4b4.Te6edf3dataTypeTb4b4b4)
Te6edf3assertEqualsTb4b4b4(Ta5d6ff"Ta5d6ff!abcdef12Ta5d6ff"Tb4b4b4, Te6edf3packetTb4b4b4.Te6edf3toTb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff2Tb4b4b4, Te6edf3packetTb4b4b4.Te6edf3channelTb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff9T79c0ff9Tb4b4b4, Te6edf3packetTb4b4b4.Te6edf3replyIdTb4b4b4)
Te6edf3assertEqualsTb4b4b4(Ta5d6ff"Ta5d6ffhello meshTa5d6ff"Tb4b4b4.Te6edf3encodeUtf8Tb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3packetTb4b4b4.Te6edf3bytesTb4b4b4)
Tb4b4b4}
Tf0883e@Test
Tff7b72fun Td2a8ffalertProperty_onlyReturnsForAlertPacketsTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3alertPacket Tff7b72= Te6edf3DataPacketTb4b4b4(Te6edf3bytes Tff7b72= Ta5d6ff"Ta5d6ffwake upTa5d6ff"Tb4b4b4.Te6edf3encodeUtf8Tb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3dataType Tff7b72= Te6edf3PortNumTb4b4b4.Te6edf3ALERT_APPTb4b4b4.Te6edf3valueTb4b4b4)
Te6edf3assertEqualsTb4b4b4(Ta5d6ff"Ta5d6ffwake upTa5d6ff"Tb4b4b4, Te6edf3alertPacketTb4b4b4.Te6edf3alertTb4b4b4)
Te6edf3assertNullTb4b4b4(Te6edf3alertPacketTb4b4b4.Te6edf3textTb4b4b4)
Tb4b4b4}
Tf0883e@Test
Tff7b72fun Td2a8ffequalityAndCopy_preserveDataUntilModifiedTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3packet Tff7b72=
Te6edf3DataPacketTb4b4b4(
Te6edf3to Tff7b72= Ta5d6ff"Ta5d6ff!12345678Ta5d6ff"Tb4b4b4,
Te6edf3from Tff7b72= Ta5d6ff"Ta5d6ff!87654321Ta5d6ff"Tb4b4b4,
Te6edf3bytes Tff7b72= Ta5d6ff"Ta5d6ffpayloadTa5d6ff"Tb4b4b4.Te6edf3encodeUtf8Tb4b4b4(Tb4b4b4)Tb4b4b4,
Te6edf3dataType Tff7b72= Te6edf3PortNumTb4b4b4.Te6edf3TEXT_MESSAGE_APPTb4b4b4.Te6edf3valueTb4b4b4,
Te6edf3id Tff7b72= T79c0ff7Tb4b4b4,
Te6edf3status Tff7b72= Te6edf3MessageStatusTb4b4b4.Te6edf3ENROUTETb4b4b4,
Te6edf3hopLimit Tff7b72= T79c0ff3Tb4b4b4,
Te6edf3hopStart Tff7b72= T79c0ff5Tb4b4b4,
Te6edf3wantAck Tff7b72= Tff7b72trueTb4b4b4,
Te6edf3channel Tff7b72= T79c0ff1Tb4b4b4,
Te6edf3snr Tff7b72= T79c0ff4.5fTb4b4b4,
Te6edf3rssi Tff7b72= Tff7b72-T79c0ff7T79c0ff0Tb4b4b4,
Te6edf3replyId Tff7b72= T79c0ff1T79c0ff1Tb4b4b4,
Te6edf3relayNode Tff7b72= T79c0ff4T79c0ff2Tb4b4b4,
Te6edf3relays Tff7b72= T79c0ff2Tb4b4b4,
Te6edf3viaMqtt Tff7b72= Tff7b72trueTb4b4b4,
Te6edf3transportMechanism Tff7b72= T79c0ff9Tb4b4b4,
Tb4b4b4)
Tff7b72val Te6edf3identicalCopy Tff7b72= Te6edf3packetTb4b4b4.Te6edf3copyTb4b4b4(Tb4b4b4)
Tff7b72val Te6edf3modifiedCopy Tff7b72= Te6edf3packetTb4b4b4.Te6edf3copyTb4b4b4(Te6edf3status Tff7b72= Te6edf3MessageStatusTb4b4b4.Te6edf3DELIVEREDTb4b4b4, Te6edf3wantAck Tff7b72= Tff7b72falseTb4b4b4)
Te6edf3assertEqualsTb4b4b4(Te6edf3packetTb4b4b4, Te6edf3identicalCopyTb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff2Tb4b4b4, Te6edf3packetTb4b4b4.Te6edf3hopsAwayTb4b4b4)
Te6edf3assertEqualsTb4b4b4(Te6edf3MessageStatusTb4b4b4.Te6edf3ENROUTETb4b4b4, Te6edf3packetTb4b4b4.Te6edf3statusTb4b4b4)
Te6edf3assertNotEqualsTb4b4b4(Te6edf3packetTb4b4b4, Te6edf3modifiedCopyTb4b4b4)
Te6edf3assertEqualsTb4b4b4(Te6edf3MessageStatusTb4b4b4.Te6edf3DELIVEREDTb4b4b4, Te6edf3modifiedCopyTb4b4b4.Te6edf3statusTb4b4b4)
Te6edf3assertFalseTb4b4b4(Te6edf3modifiedCopyTb4b4b4.Te6edf3wantAckTb4b4b4)
Te6edf3assertEqualsTb4b4b4(Te6edf3MessageStatusTb4b4b4.Te6edf3ENROUTETb4b4b4, Te6edf3packetTb4b4b4.Te6edf3statusTb4b4b4)
Tb4b4b4}
Tf0883e@Test
Tff7b72fun Td2a8ffhopsAway_isUnknownForInvalidHopValuesTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3assertEqualsTb4b4b4(Tff7b72-T79c0ff1Tb4b4b4, Te6edf3DataPacketTb4b4b4(Te6edf3bytes Tff7b72= Tff7b72nullTb4b4b4, Te6edf3dataType Tff7b72= T79c0ff0Tb4b4b4, Te6edf3hopStart Tff7b72= T79c0ff0Tb4b4b4, Te6edf3hopLimit Tff7b72= T79c0ff0Tb4b4b4)Tb4b4b4.Te6edf3hopsAwayTb4b4b4)
Te6edf3assertEqualsTb4b4b4(Tff7b72-T79c0ff1Tb4b4b4, Te6edf3DataPacketTb4b4b4(Te6edf3bytes Tff7b72= Tff7b72nullTb4b4b4, Te6edf3dataType Tff7b72= T79c0ff0Tb4b4b4, Te6edf3hopStart Tff7b72= T79c0ff2Tb4b4b4, Te6edf3hopLimit Tff7b72= T79c0ff3Tb4b4b4)Tb4b4b4.Te6edf3hopsAwayTb4b4b4)
Tb4b4b4}
Tb4b4b4}
Tff7b72class T56d364MessageTest Tb4b4b4{
Tf0883e@Test
Tff7b72fun Td2a8ffmessageConstruction_preservesPropertiesTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3originalMessage Tff7b72=
Te6edf3MessageTb4b4b4(
Te6edf3uuid Tff7b72= T79c0ff1LTb4b4b4,
Te6edf3receivedTime Tff7b72= T79c0ff1T79c0ff0LTb4b4b4,
Te6edf3node Tff7b72= Te6edf3NodeTb4b4b4.Te6edf3createFallbackTb4b4b4(T79c0ff0Te6edf3x12345678Tb4b4b4, Ta5d6ff"Ta5d6ffNodeTa5d6ff"Tb4b4b4)Tb4b4b4,
Te6edf3text Tff7b72= Ta5d6ff"Ta5d6fforiginalTa5d6ff"Tb4b4b4,
Te6edf3fromLocal Tff7b72= Tff7b72trueTb4b4b4,
Te6edf3time Tff7b72= Ta5d6ff"Ta5d6ff10:00Ta5d6ff"Tb4b4b4,
Te6edf3read Tff7b72= Tff7b72trueTb4b4b4,
Te6edf3status Tff7b72= Te6edf3MessageStatusTb4b4b4.Te6edf3RECEIVEDTb4b4b4,
Te6edf3routingError Tff7b72= T79c0ff0Tb4b4b4,
Te6edf3packetId Tff7b72= T79c0ff1T79c0ff0T79c0ff1Tb4b4b4,
Te6edf3emojis Tff7b72= Te6edf3emptyListTb4b4b4(Tb4b4b4)Tb4b4b4,
Te6edf3snr Tff7b72= T79c0ff1.5fTb4b4b4,
Te6edf3rssi Tff7b72= Tff7b72-T79c0ff6T79c0ff5Tb4b4b4,
Te6edf3hopsAway Tff7b72= T79c0ff1Tb4b4b4,
Te6edf3replyId Tff7b72= Tff7b72nullTb4b4b4,
Tb4b4b4)
Tff7b72val Te6edf3reaction Tff7b72=
Te6edf3ReactionTb4b4b4(
Te6edf3replyId Tff7b72= T79c0ff1T79c0ff0T79c0ff1Tb4b4b4,
Te6edf3user Tff7b72= Te6edf3originalMessageTb4b4b4.Te6edf3nodeTb4b4b4.Te6edf3userTb4b4b4,
Te6edf3emoji Tff7b72= Ta5d6ff"Ta5d6ff👍Ta5d6ff"Tb4b4b4,
Te6edf3timestamp Tff7b72= T79c0ff2T79c0ff0LTb4b4b4,
Te6edf3snr Tff7b72= T79c0ff2.5fTb4b4b4,
Te6edf3rssi Tff7b72= Tff7b72-T79c0ff5T79c0ff5Tb4b4b4,
Te6edf3hopsAway Tff7b72= T79c0ff2Tb4b4b4,
Te6edf3packetId Tff7b72= T79c0ff2T79c0ff0T79c0ff2Tb4b4b4,
Te6edf3status Tff7b72= Te6edf3MessageStatusTb4b4b4.Te6edf3DELIVEREDTb4b4b4,
Te6edf3relayNode Tff7b72= T79c0ff7T79c0ff7Tb4b4b4,
Te6edf3relays Tff7b72= T79c0ff1Tb4b4b4,
Te6edf3to Tff7b72= Ta5d6ff"Ta5d6ff!12345678Ta5d6ff"Tb4b4b4,
Te6edf3channel Tff7b72= T79c0ff3Tb4b4b4,
Tb4b4b4)
Tff7b72val Te6edf3message Tff7b72=
Te6edf3MessageTb4b4b4(
Te6edf3uuid Tff7b72= T79c0ff2LTb4b4b4,
Te6edf3receivedTime Tff7b72= T79c0ff3T79c0ff0LTb4b4b4,
Te6edf3node Tff7b72= Te6edf3originalMessageTb4b4b4.Te6edf3nodeTb4b4b4,
Te6edf3text Tff7b72= Ta5d6ff"Ta5d6ffreplyTa5d6ff"Tb4b4b4,
Te6edf3fromLocal Tff7b72= Tff7b72falseTb4b4b4,
Te6edf3time Tff7b72= Ta5d6ff"Ta5d6ff10:01Ta5d6ff"Tb4b4b4,
Te6edf3read Tff7b72= Tff7b72falseTb4b4b4,
Te6edf3status Tff7b72= Te6edf3MessageStatusTb4b4b4.Te6edf3ENROUTETb4b4b4,
Te6edf3routingError Tff7b72= T79c0ff0Tb4b4b4,
Te6edf3packetId Tff7b72= T79c0ff2T79c0ff0T79c0ff2Tb4b4b4,
Te6edf3emojis Tff7b72= Te6edf3listOfTb4b4b4(Te6edf3reactionTb4b4b4)Tb4b4b4,
Te6edf3snr Tff7b72= T79c0ff3.5fTb4b4b4,
Te6edf3rssi Tff7b72= Tff7b72-T79c0ff7T79c0ff5Tb4b4b4,
Te6edf3hopsAway Tff7b72= T79c0ff3Tb4b4b4,
Te6edf3replyId Tff7b72= T79c0ff1T79c0ff0T79c0ff1Tb4b4b4,
Te6edf3originalMessage Tff7b72= Te6edf3originalMessageTb4b4b4,
Te6edf3viaMqtt Tff7b72= Tff7b72trueTb4b4b4,
Te6edf3relayNode Tff7b72= T79c0ff8T79c0ff8Tb4b4b4,
Te6edf3relays Tff7b72= T79c0ff2Tb4b4b4,
Te6edf3filtered Tff7b72= Tff7b72trueTb4b4b4,
Te6edf3transportMechanism Tff7b72= T79c0ff4Tb4b4b4,
Tb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff2LTb4b4b4, Te6edf3messageTb4b4b4.Te6edf3uuidTb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff3T79c0ff0LTb4b4b4, Te6edf3messageTb4b4b4.Te6edf3receivedTimeTb4b4b4)
Te6edf3assertEqualsTb4b4b4(Te6edf3originalMessageTb4b4b4.Te6edf3nodeTb4b4b4, Te6edf3messageTb4b4b4.Te6edf3nodeTb4b4b4)
Te6edf3assertEqualsTb4b4b4(Ta5d6ff"Ta5d6ffreplyTa5d6ff"Tb4b4b4, Te6edf3messageTb4b4b4.Te6edf3textTb4b4b4)
Te6edf3assertFalseTb4b4b4(Te6edf3messageTb4b4b4.Te6edf3fromLocalTb4b4b4)
Te6edf3assertFalseTb4b4b4(Te6edf3messageTb4b4b4.Te6edf3readTb4b4b4)
Te6edf3assertEqualsTb4b4b4(Te6edf3MessageStatusTb4b4b4.Te6edf3ENROUTETb4b4b4, Te6edf3messageTb4b4b4.Te6edf3statusTb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff2T79c0ff0T79c0ff2Tb4b4b4, Te6edf3messageTb4b4b4.Te6edf3packetIdTb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff1Tb4b4b4, Te6edf3messageTb4b4b4.Te6edf3emojisTb4b4b4.Te6edf3sizeTb4b4b4)
Te6edf3assertEqualsTb4b4b4(Te6edf3reactionTb4b4b4, Te6edf3messageTb4b4b4.Te6edf3emojisTb4b4b4.Te6edf3singleTb4b4b4(Tb4b4b4)Tb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff1T79c0ff0T79c0ff1Tb4b4b4, Te6edf3messageTb4b4b4.Te6edf3replyIdTb4b4b4)
Te6edf3assertEqualsTb4b4b4(Te6edf3originalMessageTb4b4b4, Te6edf3messageTb4b4b4.Te6edf3originalMessageTb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff8T79c0ff8Tb4b4b4, Te6edf3messageTb4b4b4.Te6edf3relayNodeTb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff2Tb4b4b4, Te6edf3messageTb4b4b4.Te6edf3relaysTb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff4Tb4b4b4, Te6edf3messageTb4b4b4.Te6edf3transportMechanismTb4b4b4)
Te6edf3assertTrueTb4b4b4(Te6edf3messageTb4b4b4.Te6edf3viaMqttTb4b4b4)
Te6edf3assertTrueTb4b4b4(Te6edf3messageTb4b4b4.Te6edf3filteredTb4b4b4)
Tb4b4b4}
Tf0883e@Test
Tff7b72fun Td2a8ffgetStatusStringRes_returnsDeliveryResourcesTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3message Tff7b72=
Te6edf3MessageTb4b4b4(
Te6edf3uuid Tff7b72= T79c0ff1LTb4b4b4,
Te6edf3receivedTime Tff7b72= T79c0ff0LTb4b4b4,
Te6edf3node Tff7b72= Te6edf3NodeTb4b4b4.Te6edf3createFallbackTb4b4b4(T79c0ff1Tb4b4b4, Ta5d6ff"Ta5d6ffNodeTa5d6ff"Tb4b4b4)Tb4b4b4,
Te6edf3text Tff7b72= Ta5d6ff"Ta5d6ffhelloTa5d6ff"Tb4b4b4,
Te6edf3fromLocal Tff7b72= Tff7b72trueTb4b4b4,
Te6edf3time Tff7b72= Ta5d6ff"Ta5d6ffnowTa5d6ff"Tb4b4b4,
Te6edf3read Tff7b72= Tff7b72falseTb4b4b4,
Te6edf3status Tff7b72= Te6edf3MessageStatusTb4b4b4.Te6edf3DELIVEREDTb4b4b4,
Te6edf3routingError Tff7b72= T79c0ff0Tb4b4b4,
Te6edf3packetId Tff7b72= T79c0ff1Tb4b4b4,
Te6edf3emojis Tff7b72= Te6edf3emptyListTb4b4b4(Tb4b4b4)Tb4b4b4,
Te6edf3snr Tff7b72= T79c0ff0fTb4b4b4,
Te6edf3rssi Tff7b72= T79c0ff0Tb4b4b4,
Te6edf3hopsAway Tff7b72= T79c0ff0Tb4b4b4,
Te6edf3replyId Tff7b72= Tff7b72nullTb4b4b4,
Tb4b4b4)
Tff7b72val Tb4b4b4(Te6edf3titleTb4b4b4, Te6edf3textTb4b4b4) Tff7b72= Te6edf3messageTb4b4b4.Te6edf3getStatusStringResTb4b4b4(Tb4b4b4)
Te6edf3assertEqualsTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3message_delivery_statusTb4b4b4, Te6edf3titleTb4b4b4)
Te6edf3assertEqualsTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3message_status_deliveredTb4b4b4, Te6edf3textTb4b4b4)
Tb4b4b4}
Tf0883e@Test
Tff7b72fun Td2a8ffgetStatusStringRes_returnsDirectImplicitAckResourceForDirectMessagesTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72val Tb4b4b4(Te6edf3titleTb4b4b4, Te6edf3textTb4b4b4) Tff7b72= Te6edf3messageWithTb4b4b4(Te6edf3status Tff7b72= Te6edf3MessageStatusTb4b4b4.Te6edf3DELIVEREDTb4b4b4)Tb4b4b4.Te6edf3getStatusStringResTb4b4b4(Te6edf3isDirectMessage Tff7b72= Tff7b72trueTb4b4b4)
Te6edf3assertEqualsTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3message_delivery_statusTb4b4b4, Te6edf3titleTb4b4b4)
Te6edf3assertEqualsTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3message_status_relayed_not_confirmedTb4b4b4, Te6edf3textTb4b4b4)
Tb4b4b4}
Tf0883e@Test
Tff7b72fun Td2a8ffgetStatusStringRes_returnsRecipientDeliveryResourceTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3message Tff7b72=
Te6edf3MessageTb4b4b4(
Te6edf3uuid Tff7b72= T79c0ff1LTb4b4b4,
Te6edf3receivedTime Tff7b72= T79c0ff0LTb4b4b4,
Te6edf3node Tff7b72= Te6edf3NodeTb4b4b4.Te6edf3createFallbackTb4b4b4(T79c0ff1Tb4b4b4, Ta5d6ff"Ta5d6ffNodeTa5d6ff"Tb4b4b4)Tb4b4b4,
Te6edf3text Tff7b72= Ta5d6ff"Ta5d6ffhelloTa5d6ff"Tb4b4b4,
Te6edf3fromLocal Tff7b72= Tff7b72trueTb4b4b4,
Te6edf3time Tff7b72= Ta5d6ff"Ta5d6ffnowTa5d6ff"Tb4b4b4,
Te6edf3read Tff7b72= Tff7b72falseTb4b4b4,
Te6edf3status Tff7b72= Te6edf3MessageStatusTb4b4b4.Te6edf3RECEIVEDTb4b4b4,
Te6edf3routingError Tff7b72= T79c0ff0Tb4b4b4,
Te6edf3packetId Tff7b72= T79c0ff1Tb4b4b4,
Te6edf3emojis Tff7b72= Te6edf3emptyListTb4b4b4(Tb4b4b4)Tb4b4b4,
Te6edf3snr Tff7b72= T79c0ff0fTb4b4b4,
Te6edf3rssi Tff7b72= T79c0ff0Tb4b4b4,
Te6edf3hopsAway Tff7b72= T79c0ff0Tb4b4b4,
Te6edf3replyId Tff7b72= Tff7b72nullTb4b4b4,
Tb4b4b4)
Tff7b72val Tb4b4b4(Te6edf3titleTb4b4b4, Te6edf3textTb4b4b4) Tff7b72= Te6edf3messageTb4b4b4.Te6edf3getStatusStringResTb4b4b4(Tb4b4b4)
Te6edf3assertEqualsTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3message_delivery_statusTb4b4b4, Te6edf3titleTb4b4b4)
Te6edf3assertEqualsTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3message_status_recipient_deliveredTb4b4b4, Te6edf3textTb4b4b4)
Tb4b4b4}
Tf0883e@Test
Tff7b72fun Td2a8ffgetStatusStringRes_returnsSendingResourceForPendingMessagesTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72for Tb4b4b4(Te6edf3status Tff7b72in Te6edf3listOfTb4b4b4(Te6edf3MessageStatusTb4b4b4.Te6edf3QUEUEDTb4b4b4, Te6edf3MessageStatusTb4b4b4.Te6edf3ENROUTETb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72val Tb4b4b4(Te6edf3titleTb4b4b4, Te6edf3textTb4b4b4) Tff7b72= Te6edf3messageWithTb4b4b4(Te6edf3status Tff7b72= Te6edf3statusTb4b4b4)Tb4b4b4.Te6edf3getStatusStringResTb4b4b4(Tb4b4b4)
Te6edf3assertEqualsTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3message_delivery_statusTb4b4b4, Te6edf3titleTb4b4b4)
Te6edf3assertEqualsTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3message_status_enrouteTb4b4b4, Te6edf3textTb4b4b4)
Tb4b4b4}
Tb4b4b4}
Tf0883e@Test
Tff7b72fun Td2a8ffgetStatusStringRes_returnsErrorResourcesForRoutingFailuresTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3message Tff7b72=
Te6edf3MessageTb4b4b4(
Te6edf3uuid Tff7b72= T79c0ff1LTb4b4b4,
Te6edf3receivedTime Tff7b72= T79c0ff0LTb4b4b4,
Te6edf3node Tff7b72= Te6edf3NodeTb4b4b4.Te6edf3createFallbackTb4b4b4(T79c0ff1Tb4b4b4, Ta5d6ff"Ta5d6ffNodeTa5d6ff"Tb4b4b4)Tb4b4b4,
Te6edf3text Tff7b72= Ta5d6ff"Ta5d6ffhelloTa5d6ff"Tb4b4b4,
Te6edf3fromLocal Tff7b72= Tff7b72trueTb4b4b4,
Te6edf3time Tff7b72= Ta5d6ff"Ta5d6ffnowTa5d6ff"Tb4b4b4,
Te6edf3read Tff7b72= Tff7b72falseTb4b4b4,
Te6edf3status Tff7b72= Te6edf3MessageStatusTb4b4b4.Te6edf3ERRORTb4b4b4,
Te6edf3routingError Tff7b72= Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3NO_ROUTETb4b4b4.Te6edf3valueTb4b4b4,
Te6edf3packetId Tff7b72= T79c0ff1Tb4b4b4,
Te6edf3emojis Tff7b72= Te6edf3emptyListTb4b4b4(Tb4b4b4)Tb4b4b4,
Te6edf3snr Tff7b72= T79c0ff0fTb4b4b4,
Te6edf3rssi Tff7b72= T79c0ff0Tb4b4b4,
Te6edf3hopsAway Tff7b72= T79c0ff0Tb4b4b4,
Te6edf3replyId Tff7b72= Tff7b72nullTb4b4b4,
Tb4b4b4)
Tff7b72val Tb4b4b4(Te6edf3titleTb4b4b4, Te6edf3textTb4b4b4) Tff7b72= Te6edf3messageTb4b4b4.Te6edf3getStatusStringResTb4b4b4(Tb4b4b4)
Te6edf3assertEqualsTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3errorTb4b4b4, Te6edf3titleTb4b4b4)
Te6edf3assertEqualsTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3routing_error_no_routeTb4b4b4, Te6edf3textTb4b4b4)
Tb4b4b4}
Tf0883e@Test
Tff7b72fun Td2a8ffgetStatusStringRes_returnsMessageSpecificRoutingResourcesTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3mappings Tff7b72=
Te6edf3listOfTb4b4b4(
Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3MAX_RETRANSMITTb4b4b4.Te6edf3value Te6edf3to Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3message_routing_error_max_retransmitTb4b4b4,
Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3GOT_NAKTb4b4b4.Te6edf3value Te6edf3to Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3message_routing_error_max_retransmitTb4b4b4,
Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3TIMEOUTTb4b4b4.Te6edf3value Te6edf3to Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3message_routing_error_max_retransmitTb4b4b4,
Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3NO_CHANNELTb4b4b4.Te6edf3value Te6edf3to Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3message_routing_error_no_channelTb4b4b4,
Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3NO_INTERFACETb4b4b4.Te6edf3value Te6edf3to Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3message_routing_error_no_interfaceTb4b4b4,
Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3DUTY_CYCLE_LIMITTb4b4b4.Te6edf3value Te6edf3to Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3message_routing_error_duty_cycle_limitTb4b4b4,
Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3RATE_LIMIT_EXCEEDEDTb4b4b4.Te6edf3value Te6edf3to Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3message_routing_error_rate_limit_exceededTb4b4b4,
Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3NO_RESPONSETb4b4b4.Te6edf3value Te6edf3to Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3message_routing_error_no_responseTb4b4b4,
Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3BAD_REQUESTTb4b4b4.Te6edf3value Te6edf3to Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3message_routing_error_bad_requestTb4b4b4,
Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3NOT_AUTHORIZEDTb4b4b4.Te6edf3value Te6edf3to Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3message_routing_error_not_authorizedTb4b4b4,
Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3PKI_FAILEDTb4b4b4.Te6edf3value Te6edf3to Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3message_routing_error_pki_failedTb4b4b4,
Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3PKI_SEND_FAIL_PUBLIC_KEYTb4b4b4.Te6edf3value Te6edf3to
Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3message_routing_error_pki_send_fail_public_keyTb4b4b4,
Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3PKI_UNKNOWN_PUBKEYTb4b4b4.Te6edf3value Te6edf3to Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3message_routing_error_pki_unknown_pubkeyTb4b4b4,
Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3TOO_LARGETb4b4b4.Te6edf3value Te6edf3to Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3message_routing_error_too_largeTb4b4b4,
Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3ADMIN_BAD_SESSION_KEYTb4b4b4.Te6edf3value Te6edf3to Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3message_routing_error_admin_bad_session_keyTb4b4b4,
Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3ADMIN_PUBLIC_KEY_UNAUTHORIZEDTb4b4b4.Te6edf3value Te6edf3to
Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3message_routing_error_admin_public_key_unauthorizedTb4b4b4,
Tb4b4b4)
Tff7b72for Tb4b4b4(Tb4b4b4(Te6edf3routingErrorTb4b4b4, Te6edf3expectedTextTb4b4b4) Tff7b72in Te6edf3mappingsTb4b4b4) Tb4b4b4{
Tff7b72val Tb4b4b4(Te6edf3titleTb4b4b4, Te6edf3textTb4b4b4) Tff7b72=
Te6edf3messageWithTb4b4b4(Te6edf3status Tff7b72= Te6edf3MessageStatusTb4b4b4.Te6edf3ERRORTb4b4b4, Te6edf3routingError Tff7b72= Te6edf3routingErrorTb4b4b4)Tb4b4b4.Te6edf3getStatusStringResTb4b4b4(Tb4b4b4)
Te6edf3assertEqualsTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3errorTb4b4b4, Te6edf3titleTb4b4b4)
Te6edf3assertEqualsTb4b4b4(Te6edf3expectedTextTb4b4b4, Te6edf3textTb4b4b4)
Tb4b4b4}
Tb4b4b4}
Tf0883e@Test
Tff7b72fun Td2a8ffgetMessageStatusDetailRes_returnsActionableRoutingFailureDetailsTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3mappings Tff7b72=
Te6edf3listOfTb4b4b4(
Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3NO_ROUTETb4b4b4.Te6edf3value Te6edf3to Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3message_routing_error_no_route_detailTb4b4b4,
Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3GOT_NAKTb4b4b4.Te6edf3value Te6edf3to Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3message_routing_error_got_nak_detailTb4b4b4,
Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3TIMEOUTTb4b4b4.Te6edf3value Te6edf3to Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3message_routing_error_timeout_detailTb4b4b4,
Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3MAX_RETRANSMITTb4b4b4.Te6edf3value Te6edf3to Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3message_routing_error_max_retransmit_detailTb4b4b4,
Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3NO_CHANNELTb4b4b4.Te6edf3value Te6edf3to Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3message_routing_error_no_channel_detailTb4b4b4,
Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3NO_INTERFACETb4b4b4.Te6edf3value Te6edf3to Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3message_routing_error_no_interface_detailTb4b4b4,
Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3DUTY_CYCLE_LIMITTb4b4b4.Te6edf3value Te6edf3to Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3message_routing_error_duty_cycle_limit_detailTb4b4b4,
Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3RATE_LIMIT_EXCEEDEDTb4b4b4.Te6edf3value Te6edf3to Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3message_routing_error_rate_limit_exceeded_detailTb4b4b4,
Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3TOO_LARGETb4b4b4.Te6edf3value Te6edf3to Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3message_routing_error_too_large_detailTb4b4b4,
Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3NO_RESPONSETb4b4b4.Te6edf3value Te6edf3to Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3message_routing_error_no_response_detailTb4b4b4,
Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3BAD_REQUESTTb4b4b4.Te6edf3value Te6edf3to Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3message_routing_error_bad_request_detailTb4b4b4,
Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3NOT_AUTHORIZEDTb4b4b4.Te6edf3value Te6edf3to Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3message_routing_error_not_authorized_detailTb4b4b4,
Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3PKI_FAILEDTb4b4b4.Te6edf3value Te6edf3to Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3message_routing_error_pki_failed_detailTb4b4b4,
Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3PKI_UNKNOWN_PUBKEYTb4b4b4.Te6edf3value Te6edf3to Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3message_routing_error_pki_unknown_pubkey_detailTb4b4b4,
Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3PKI_SEND_FAIL_PUBLIC_KEYTb4b4b4.Te6edf3value Te6edf3to
Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3message_routing_error_pki_send_fail_public_key_detailTb4b4b4,
Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3ADMIN_BAD_SESSION_KEYTb4b4b4.Te6edf3value Te6edf3to
Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3message_routing_error_admin_bad_session_key_detailTb4b4b4,
Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3ADMIN_PUBLIC_KEY_UNAUTHORIZEDTb4b4b4.Te6edf3value Te6edf3to
Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3message_routing_error_admin_public_key_unauthorized_detailTb4b4b4,
Tb4b4b4)
Tff7b72for Tb4b4b4(Tb4b4b4(Te6edf3routingErrorTb4b4b4, Te6edf3expectedDetailTb4b4b4) Tff7b72in Te6edf3mappingsTb4b4b4) Tb4b4b4{
Te6edf3assertEqualsTb4b4b4(Te6edf3expectedDetailTb4b4b4, Te6edf3getMessageStatusDetailResTb4b4b4(Te6edf3MessageStatusTb4b4b4.Te6edf3ERRORTb4b4b4, Te6edf3routingErrorTb4b4b4)Tb4b4b4)
Tb4b4b4}
Te6edf3assertNullTb4b4b4(Te6edf3getMessageStatusDetailResTb4b4b4(Te6edf3MessageStatusTb4b4b4.Te6edf3DELIVEREDTb4b4b4, Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3MAX_RETRANSMITTb4b4b4.Te6edf3valueTb4b4b4)Tb4b4b4)
Te6edf3assertNullTb4b4b4(Te6edf3getMessageStatusDetailResTb4b4b4(Te6edf3MessageStatusTb4b4b4.Te6edf3ERRORTb4b4b4, Tffa657IntTb4b4b4.Te6edf3MAX_VALUETb4b4b4)Tb4b4b4)
Tb4b4b4}
Tf0883e@Test
Tff7b72fun Td2a8ffgetStatusStringRes_returnsUnknownForMissingStatusTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3message Tff7b72=
Te6edf3MessageTb4b4b4(
Te6edf3uuid Tff7b72= T79c0ff1LTb4b4b4,
Te6edf3receivedTime Tff7b72= T79c0ff0LTb4b4b4,
Te6edf3node Tff7b72= Te6edf3NodeTb4b4b4.Te6edf3createFallbackTb4b4b4(T79c0ff1Tb4b4b4, Ta5d6ff"Ta5d6ffNodeTa5d6ff"Tb4b4b4)Tb4b4b4,
Te6edf3text Tff7b72= Ta5d6ff"Ta5d6ffhelloTa5d6ff"Tb4b4b4,
Te6edf3fromLocal Tff7b72= Tff7b72trueTb4b4b4,
Te6edf3time Tff7b72= Ta5d6ff"Ta5d6ffnowTa5d6ff"Tb4b4b4,
Te6edf3read Tff7b72= Tff7b72falseTb4b4b4,
Te6edf3status Tff7b72= Tff7b72nullTb4b4b4,
Te6edf3routingError Tff7b72= T79c0ff0Tb4b4b4,
Te6edf3packetId Tff7b72= T79c0ff1Tb4b4b4,
Te6edf3emojis Tff7b72= Te6edf3emptyListTb4b4b4(Tb4b4b4)Tb4b4b4,
Te6edf3snr Tff7b72= T79c0ff0fTb4b4b4,
Te6edf3rssi Tff7b72= T79c0ff0Tb4b4b4,
Te6edf3hopsAway Tff7b72= T79c0ff0Tb4b4b4,
Te6edf3replyId Tff7b72= Tff7b72nullTb4b4b4,
Tb4b4b4)
Tff7b72val Tb4b4b4(Te6edf3titleTb4b4b4, Te6edf3textTb4b4b4) Tff7b72= Te6edf3messageTb4b4b4.Te6edf3getStatusStringResTb4b4b4(Tb4b4b4)
Te6edf3assertEqualsTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3message_delivery_statusTb4b4b4, Te6edf3titleTb4b4b4)
Te6edf3assertEqualsTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3message_status_unknownTb4b4b4, Te6edf3textTb4b4b4)
Tb4b4b4}
Tf0883e@Test
Tff7b72fun Td2a8ffgetStringResFrom_mapsUnknownValuesToUnrecognizedTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3assertEqualsTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3routing_error_noneTb4b4b4, Te6edf3getStringResFromTb4b4b4(Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3NONETb4b4b4.Te6edf3valueTb4b4b4)Tb4b4b4)
Te6edf3assertEqualsTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3unrecognizedTb4b4b4, Te6edf3getStringResFromTb4b4b4(Tffa657IntTb4b4b4.Te6edf3MAX_VALUETb4b4b4)Tb4b4b4)
Tb4b4b4}
Tf0883e@Test
Tff7b72fun Td2a8ffgetStringResFrom_keepsSharedRoutingResourcesForGenericContextsTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3mappings Tff7b72=
Te6edf3listOfTb4b4b4(
Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3MAX_RETRANSMITTb4b4b4.Te6edf3value Te6edf3to Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3routing_error_max_retransmitTb4b4b4,
Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3NO_CHANNELTb4b4b4.Te6edf3value Te6edf3to Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3routing_error_no_channelTb4b4b4,
Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3NO_INTERFACETb4b4b4.Te6edf3value Te6edf3to Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3routing_error_no_interfaceTb4b4b4,
Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3DUTY_CYCLE_LIMITTb4b4b4.Te6edf3value Te6edf3to Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3routing_error_duty_cycle_limitTb4b4b4,
Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3RATE_LIMIT_EXCEEDEDTb4b4b4.Te6edf3value Te6edf3to Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3routing_error_rate_limit_exceededTb4b4b4,
Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3NO_RESPONSETb4b4b4.Te6edf3value Te6edf3to Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3routing_error_no_responseTb4b4b4,
Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3BAD_REQUESTTb4b4b4.Te6edf3value Te6edf3to Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3routing_error_bad_requestTb4b4b4,
Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3NOT_AUTHORIZEDTb4b4b4.Te6edf3value Te6edf3to Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3routing_error_not_authorizedTb4b4b4,
Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3PKI_FAILEDTb4b4b4.Te6edf3value Te6edf3to Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3routing_error_pki_failedTb4b4b4,
Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3PKI_SEND_FAIL_PUBLIC_KEYTb4b4b4.Te6edf3value Te6edf3to Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3routing_error_pki_send_fail_public_keyTb4b4b4,
Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3PKI_UNKNOWN_PUBKEYTb4b4b4.Te6edf3value Te6edf3to Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3routing_error_pki_unknown_pubkeyTb4b4b4,
Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3TOO_LARGETb4b4b4.Te6edf3value Te6edf3to Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3routing_error_too_largeTb4b4b4,
Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3ADMIN_BAD_SESSION_KEYTb4b4b4.Te6edf3value Te6edf3to Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3routing_error_admin_bad_session_keyTb4b4b4,
Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3ADMIN_PUBLIC_KEY_UNAUTHORIZEDTb4b4b4.Te6edf3value Te6edf3to
Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3routing_error_admin_public_key_unauthorizedTb4b4b4,
Tb4b4b4)
Tff7b72for Tb4b4b4(Tb4b4b4(Te6edf3routingErrorTb4b4b4, Te6edf3expectedTextTb4b4b4) Tff7b72in Te6edf3mappingsTb4b4b4) Tb4b4b4{
Te6edf3assertEqualsTb4b4b4(Te6edf3expectedTextTb4b4b4, Te6edf3getStringResFromTb4b4b4(Te6edf3routingErrorTb4b4b4)Tb4b4b4)
Tb4b4b4}
Tb4b4b4}
Tf0883e@Test
Tff7b72fun Td2a8ffisMessageStatusRetryable_allowsRetryForRetryableMessageStatusesOnlyTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3assertTrueTb4b4b4(
Te6edf3messageWithTb4b4b4(Te6edf3status Tff7b72= Te6edf3MessageStatusTb4b4b4.Te6edf3ERRORTb4b4b4, Te6edf3routingError Tff7b72= Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3MAX_RETRANSMITTb4b4b4.Te6edf3valueTb4b4b4)
Tb4b4b4.Te6edf3isStatusRetryableTb4b4b4(Tb4b4b4)Tb4b4b4,
Tb4b4b4)
Tff7b72val Te6edf3retryableRoutingErrors Tff7b72=
Te6edf3listOfTb4b4b4(
Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3NO_INTERFACETb4b4b4.Te6edf3valueTb4b4b4,
Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3NO_RESPONSETb4b4b4.Te6edf3valueTb4b4b4,
Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3BAD_REQUESTTb4b4b4.Te6edf3valueTb4b4b4,
Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3NOT_AUTHORIZEDTb4b4b4.Te6edf3valueTb4b4b4,
Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3DUTY_CYCLE_LIMITTb4b4b4.Te6edf3valueTb4b4b4,
Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3PKI_FAILEDTb4b4b4.Te6edf3valueTb4b4b4,
Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3PKI_SEND_FAIL_PUBLIC_KEYTb4b4b4.Te6edf3valueTb4b4b4,
Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3PKI_UNKNOWN_PUBKEYTb4b4b4.Te6edf3valueTb4b4b4,
Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3ADMIN_BAD_SESSION_KEYTb4b4b4.Te6edf3valueTb4b4b4,
Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3ADMIN_PUBLIC_KEY_UNAUTHORIZEDTb4b4b4.Te6edf3valueTb4b4b4,
Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3RATE_LIMIT_EXCEEDEDTb4b4b4.Te6edf3valueTb4b4b4,
Tb4b4b4)
Tff7b72for Tb4b4b4(Te6edf3routingError Tff7b72in Te6edf3retryableRoutingErrorsTb4b4b4) Tb4b4b4{
Te6edf3assertTrueTb4b4b4(Te6edf3messageWithTb4b4b4(Te6edf3status Tff7b72= Te6edf3MessageStatusTb4b4b4.Te6edf3ERRORTb4b4b4, Te6edf3routingError Tff7b72= Te6edf3routingErrorTb4b4b4)Tb4b4b4.Te6edf3isStatusRetryableTb4b4b4(Tb4b4b4)Tb4b4b4)
Tb4b4b4}
Te6edf3assertTrueTb4b4b4(Te6edf3messageWithTb4b4b4(Te6edf3status Tff7b72= Te6edf3MessageStatusTb4b4b4.Te6edf3DELIVEREDTb4b4b4)Tb4b4b4.Te6edf3isStatusRetryableTb4b4b4(Te6edf3isDirectMessage Tff7b72= Tff7b72trueTb4b4b4)Tb4b4b4)
Tff7b72val Te6edf3nonRetryableRoutingErrors Tff7b72= Te6edf3listOfTb4b4b4(Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3NO_CHANNELTb4b4b4.Te6edf3valueTb4b4b4, Te6edf3RoutingTb4b4b4.Te6edf3ErrorTb4b4b4.Te6edf3TOO_LARGETb4b4b4.Te6edf3valueTb4b4b4)
Tff7b72for Tb4b4b4(Te6edf3routingError Tff7b72in Te6edf3nonRetryableRoutingErrorsTb4b4b4) Tb4b4b4{
Te6edf3assertFalseTb4b4b4(Te6edf3messageWithTb4b4b4(Te6edf3status Tff7b72= Te6edf3MessageStatusTb4b4b4.Te6edf3ERRORTb4b4b4, Te6edf3routingError Tff7b72= Te6edf3routingErrorTb4b4b4)Tb4b4b4.Te6edf3isStatusRetryableTb4b4b4(Tb4b4b4)Tb4b4b4)
Tb4b4b4}
Te6edf3assertFalseTb4b4b4(Te6edf3messageWithTb4b4b4(Te6edf3status Tff7b72= Te6edf3MessageStatusTb4b4b4.Te6edf3DELIVEREDTb4b4b4)Tb4b4b4.Te6edf3isStatusRetryableTb4b4b4(Tb4b4b4)Tb4b4b4)
Te6edf3assertFalseTb4b4b4(Te6edf3messageWithTb4b4b4(Te6edf3status Tff7b72= Te6edf3MessageStatusTb4b4b4.Te6edf3ENROUTETb4b4b4)Tb4b4b4.Te6edf3isStatusRetryableTb4b4b4(Tb4b4b4)Tb4b4b4)
Tb4b4b4}
Tff7b72private Tff7b72fun Td2a8ffmessageWithTb4b4b4(Te6edf3statusTb4b4b4: Te6edf3MessageStatus?Tb4b4b4, Te6edf3routingErrorTb4b4b4: Tffa657Int Tff7b72= T79c0ff0Tb4b4b4) Tff7b72= Te6edf3MessageTb4b4b4(
Te6edf3uuid Tff7b72= T79c0ff1LTb4b4b4,
Te6edf3receivedTime Tff7b72= T79c0ff0LTb4b4b4,
Te6edf3node Tff7b72= Te6edf3NodeTb4b4b4.Te6edf3createFallbackTb4b4b4(T79c0ff1Tb4b4b4, Ta5d6ff"Ta5d6ffNodeTa5d6ff"Tb4b4b4)Tb4b4b4,
Te6edf3text Tff7b72= Ta5d6ff"Ta5d6ffhelloTa5d6ff"Tb4b4b4,
Te6edf3fromLocal Tff7b72= Tff7b72trueTb4b4b4,
Te6edf3time Tff7b72= Ta5d6ff"Ta5d6ffnowTa5d6ff"Tb4b4b4,
Te6edf3read Tff7b72= Tff7b72falseTb4b4b4,
Te6edf3status Tff7b72= Te6edf3statusTb4b4b4,
Te6edf3routingError Tff7b72= Te6edf3routingErrorTb4b4b4,
Te6edf3packetId Tff7b72= T79c0ff1Tb4b4b4,
Te6edf3emojis Tff7b72= Te6edf3emptyListTb4b4b4(Tb4b4b4)Tb4b4b4,
Te6edf3snr Tff7b72= T79c0ff0fTb4b4b4,
Te6edf3rssi Tff7b72= T79c0ff0Tb4b4b4,
Te6edf3hopsAway Tff7b72= T79c0ff0Tb4b4b4,
Te6edf3replyId Tff7b72= Tff7b72nullTb4b4b4,
Tb4b4b4)
Tb4b4b4}
Served by rngit 1.5.0 - Generated in 0.13s